package cn.stalk.compare.anno;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AComparable {

    /**
     * 是否作为主键
     */
    boolean value() default false;

    /**
     * 当类型为字符串(String)时生效，将空字符串转为null处理，默认是
     */
    boolean blankToNull() default true;

    /**
     * 当类型为字符串(String)时生效，去两边空格后比较，默认否
     */
    boolean trim() default false;

    /**
     * 当类型为数字(Number)时生效，将null转为0处理，默认否
     */
    boolean nullToZero() default false;

    /**
     * 当类型为字符串(String)时生效。设置分隔符转为List比较
     */
    String splitToList() default "";

    /**
     * 当类型为集合(Collection)时生效，将集合转为Set比较。<br/>
     * Tip：可与splitToList配合使用
     */
    boolean toSet() default false;
}
